Oculus Questを買ったのでAmazon SumerianでVR世界に飛び込んでみた
こんにちは、大前です。突然ですが、最近 Oculus Quest という物を買ってみました。
5月末頃に発売され、PC不要のオールインワン型VRヘッドセットがお手軽な値段で手に入るという事でポチった方も多いのではないでしょうか。
私自身も勢いでポチってみた一人ではあるのですが、今までの「VRを個人で楽しむためにはハイスペックなPCが必要で、初期投資がエゲツない」という前提を打ち破るすごいヘッドセットが出てきたなぁと思うところであります。
さて、本記事は Oculus Quest のレビュー記事ではないので本題に移っていきます。
皆さんは、 Amazon Sumerian というサービスを知っていますか?
AWSが提供する、 VR(バーチャルリアリティ)/ AR(拡張現実)/ 3Dアプリケーション を手軽に作成できるサービスです。
先日の AWS Summit でも Amazon Sumerian に関するセッションがあり、弊社ブログもありますので詳しくはそちらをご覧下さい。
【レポート】XRアプリを簡単に開発!Amazon Sumerian によるVR/AR/MRアプリケーションの開発 #AWSSummit
せっかくOculus Questを買ったのなら、クラメソ社員としては AWS Sumerian 触るしかないだろうと。
という事で、「AWS Sumerian で VR 空間を作成して Oculus Quest でその空間に飛び込む」をやってみました。
目次
やること
- Amazon Sumerian で VR 空間を作ってみる
- 作った VR 空間に Oculus Quest で飛び込む
今回は、「VR空間にある立方体をVRコントローラーで掴んで動かす」をゴールに進めていきます。
やってみた
Amazon Sumerian の起動
マネジメントコンソールより、Amazon Sumerian を選択します。
選択すると、以下のような画面に遷移します。他の AWS サービスとはまた違った雰囲気がありますね。
シーンの作成
Amazon Sumerian において、VR や AR を作成する 3D 空間の事を シーン と呼びます。
ですので、何をするにもまずはシーンを作るところから始まります。
テンプレートがいくつか用意されているので、今回は「Default Lighting」と名付けられているシーンを選択します。
シーンの名前を入力して、[作成] を押下。
すると、シーンの設定画面に遷移します。この設定画面はエディタと呼びます。なんだかワクワクしますね。
エンティティの作成
さて「いよいよ VR 空間作っていくぞ!」というところで、まずはエンティティというものを作成します。
エンティティは、ざっくりな説明をすると「VR 空間に設置されるオブジェクト」の事です。一言にオブジェクトと言っても様々な種類があるのですが、今回はシンプルなエンティティを作成していきます。
画面上の [エンティティの作成] を押下。
色々出てきますが、今回は左上の立方体マークを押下。
すると、エディタ上に何やら増えています。
作成したエンティティは、左上にあるエンティティパネルにて管理され、同時に中央のプレビュー空間にも作成したエンティティが表示されます。
作成したエンティティが小さくてよくわからないので、大きくしましょう。
エンティティパネルで [Box] を選択した状態で、右側の [トランスフォーム] を押下します。
右側に表示されている [トランスフォーム]、[ジオメトリ]、[マテリアル] などはコンポーネントと呼ばれるもので、エンティティの動作や振る舞いを管理するものです。必要に合わせて追加することが出来ます。
トランスフォームというのは、エンティティの位置、角度、サイズを管理しているコンポーネントです。
今回はサイズを変更したいので、3行目(サイズ)のX, Y, Z値を 20 にします。[統一スケール] にチェックが入っていればスケール比が固定されるので、XYZのどれか一つだけ更新すれば他も一緒に変わります。
ついでに1行目(位置)の Y値を 10 にします。
すると、プレビュー空間のエンティティも変化し、さっきより立方体がわかりやすくなりました。
エンティティに対してコライダーを作成
次に、作成したエンティティ(Box)に対してコライダーというものを作成します。
コライダーというのは、エンティティに当たり判定を付与するコンポーネントです。「collider=衝突装置」という和訳からもなんとなくイメージはしやすいのではないでしょうか。
同じくエンティティパネルで [Box] を選択した状態で、画面右側の [コンポーネントの追加] を押下。
追加するコンポーネントの種類一覧が表示されるので、[コライダー] を選択。
すると、コンポーネント一覧にコライダーが追加されます。設定はデフォルトのままにします。
これで、立方体に当たり判定がつきました。実感湧きづらいですが
VR Asset Pack をインポート
立方体は出来たので、このシーンでVRヘッドセットやコントローラーを扱うために VR Asset Pack というものをインポートします。
シーン内で使用するためにインポートするイメージやサウンド、モデル等をアセットと呼びます。
画面上部より [アセットのインポート] を押下。
左上に「VR Asset Pack」があるので、選択した状態で [追加] を押下。
すると、画面左下のアセットパネル内に「VR Asset Pack」が追加されました。これでアセットの追加は完了です。
VR機能の追加
先ほどインポートした VR Asset Pack を使用することで、作成したシーンに対してVRに関する機能を追加することが出来ます。
まず、「VRCameraRig」というものを中央のプレビュー空間にドラッグ&ドロップします。
すると、エンティティパネルに「VRCameraRig」が追加されます。
VR空間に飛び込んだ時の自分の初期位置を VRCameraRig で設定することができます。詳細については 公式ドキュメントをご覧下さい。
エンティティパネルで「VRCameraRig」を選択した状態で、VRCameraRig コンポーネントを選択し、以下の様に設定します。
デフォルト値だと初期位置が立方体の内部になっていたので、トランスフォームの値も弄りました。
これで VR 空間に飛び込む事が出来る様になっています。
立方体を掴める様にする
今回のゴールは「VR 空間で立方体を掴む」ですので、作成した Box を VR コントローラーで掴める様にする必要があります。
これだけ聞くとさっぱりどうすれば良いのかわかりませんが、先ほどインポートした VR Asset Pack がそんなお悩みを解決してくれます。
まず、エンティティパネルから「Box」を選択し、[コンポーネントの追加] → [スクリプト] を選択。
Amazon Sumerian は、JavaScript を使用してシーンの振る舞いを細かく制御する事ができます。
「VR Asset Pack」内の「vr_action_object_grab」というスクリプトを、作成されたスクリプトコンポーネントの [スクリプトのドロップ] 欄にドラッグ&ドロップします。
grabと名のついている事からわかる様に、このスクリプトをエンティティに割り当てると VR コントローラーでオブジェクトを掴める様になります。
スクリプトコンポーネント内に該当のスクリプトが読み込まれていればOKです。
シーンを公開する
ここまでで一通りのシーンの設定が済んだので、いよいよ作成したシーンを公開していきます。
画面右上の [公開] を押下し、
[パブリックリンクを作成する] を押下。
そして、[公開] を押下します。
すると公開完了となり、URLが表示されます。この URL にアクセスする事で、作成したシーンを閲覧する事ができます。
Oculus Quest から VR 空間へ
ではいよいよ作成した VR 空間に Oculus Quest で飛び込んで行こうと思います!
Oculus Quest 内のブラウザより上記 URL にアクセスすると、シーンがロードされます。
シーンが表示されたら、右下の VR ヘッドセットマークを選択すると、VR空間に入る事ができます!
VR 空間に入った時の動画が以下になります。一応3D酔い注意です
VR コントローラーを立方体にかざすと青色の手のマークが表示され、ボタンを押すとオレンジの手のマークに変化します。
押した状態でコントローラーを動かすと立方体を動かす事ができます。
晴れて、当初のゴールであった「VR空間にある立方体をVRコントローラーで掴んで動かす」が実現できました!
あとがき
Amazon Sumerian を使って VR 空間を作成し、Oculus Quest を使用して実際に 自作 VR 空間を体験してみました。
ブログを書くために試行錯誤していた時は 2〜3時間かかってしまいましたが、謳い文句通り VR コンテンツを非常に気軽に作成出来るサービスだなと実感しました。
特に、ボタン1つで作成した VR 空間を世の中に公開できる手軽さは強みなのかなと感じました。
シーンのエディタに関しては、個人的には Adobe AfterEffects と Elements 3D のインターフェースに近いものを感じました。その辺のソフトを触っている方ならばそこまで抵抗なくキャッチアップできるのではないかと思います。
もっとシーンのエディタについて深掘りしつつ、AWS事業本部の人間として他AWSサービスとの連携周りも調べていきたいと思います。
以上、AWS事業本部の大前でした!